61 research outputs found

    Basic completion strategies as another application of the Maude strategy language

    Full text link
    The two levels of data and actions on those data provided by the separation between equations and rules in rewriting logic are completed by a third level of strategies to control the application of those actions. This level is implemented on top of Maude as a strategy language, which has been successfully used in a wide range of applications. First we summarize the Maude strategy language design and review some of its applications; then, we describe a new case study, namely the description of completion procedures as transition rules + control, as proposed by Lescanne.Comment: In Proceedings WRS 2011, arXiv:1204.531

    Visualizing Parallel Functional Program Runs: Case Studies with the Eden Trace Viewer

    Get PDF

    Stack-based Implementation of Narrowing

    No full text
    An abstract stack machine for the implementation of narrowing is presented. On the one hand

    Parallele Implementierung funktionaler Programmiersprachen

    No full text

    From Reduction Machines To Narrowing Machines

    No full text
    Narrowing, the evaluation mechanism of functional logic languages, can be seen as a generalization of reduction, the evaluation mechanism of purely functional languages. The unidirectional pattern matching, which is used for parameter passing in functional languages, is simply replaced by the bidirectional unification known from logic programming languages. We show in this paper, how to extend a reduction machine, that has been designed for the evaluation of purely functional programs to a machine that performs narrowing. The necessary extensions concern the realization of unification and backtracking. The latter has to be incorporated to handle nondeterministic computations. It turns out that the resulting narrowing machine can also be seen as an extension of Warren's Prolog engine [Warren 83]. This extension enables a space efficient handling of nested expressions and embodies an optimized treatment of deterministic computations. As in Warren's machine the central component of the ma..

    Relating the Implementation Techniques of Functional and Functional Logic Languages

    No full text
    Functional logic languages are declarative programming languages that integrate the programming paradigms of functional and logic languages within a single framework. They are extensions of functional languages with principles derived from logic programming. Narrowing, the evaluation mechanism of functional logic languages, can be defined as a generalization of reduction, the evaluation mechanism of purely functional languages. The unidirectional pattern matching, which is used for parameter passing in functional languages, is simply replaced by the bidirectional unification known from logic programming languages. We show in this paper, how to extend a reduction machine, that has been designed for the evaluation of purely functional programs to a machine that performs narrowing. The necessary extensions concern the realization of unification and backtracking, for which we fall back upon the methods of Warren's Prolog engine [Warren 83]. The narrowing machine embodies an optimized trea..

    Stack management of runtime structures in distributed implementations

    No full text

    Efficient Organization of Control Structures in Distributed Implementations

    No full text
    . A new technique for the management of control structures in distributed implementations of dynamic process systems is presented. Instead of storing the runtime stacks of parallel processes as linked lists of activation blocks in a heap structure, the local stacks of several parallel processes, which are executed on the same processor element, are stored in an interleaved manner on a single physical stack (within each processor element), called the meshed stack. The technique ensures that there is almost no overhead for the evaluation of single processes due to the parallel environment. In principle, the meshed stack technique is independent of the implemented language. We explain it for the parallel implementation of functional languages. 1 Introduction In purely sequential implementations of most programming languages a runtime stack is used for the control of recursive function or procedure calls. Such calls lead to the allocation of control information (activation blocks) on top..
    • …
    corecore